home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / acct.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  4KB  |  117 lines

  1. /*
  2.  *  BSD Process Accounting for Linux - Definitions
  3.  *
  4.  *  Author: Marco van Wieringen (mvw@planets.elm.net)
  5.  *
  6.  *  This header file contains the definitions needed to implement
  7.  *  BSD-style process accounting. The kernel accounting code and all
  8.  *  user-level programs that try to do something useful with the
  9.  *  process accounting log must include this file.
  10.  *
  11.  *  Copyright (C) 1995 - 1997 Marco van Wieringen - ELM Consultancy B.V.
  12.  *
  13.  */
  14.  
  15. #ifndef _LINUX_ACCT_H
  16. #define _LINUX_ACCT_H
  17.  
  18. #include <linux/types.h>
  19.  
  20. #include <asm/param.h>
  21. #include <asm/byteorder.h>
  22.  
  23. /* 
  24.  *  comp_t is a 16-bit "floating" point number with a 3-bit base 8
  25.  *  exponent and a 13-bit fraction.
  26.  *  comp2_t is 24-bit with 5-bit base 2 exponent and 20 bit fraction
  27.  *  (leading 1 not stored).
  28.  *  See linux/kernel/acct.c for the specific encoding systems used.
  29.  */
  30.  
  31. typedef __u16    comp_t;
  32. typedef __u32    comp2_t;
  33.  
  34. /*
  35.  *   accounting file record
  36.  *
  37.  *   This structure contains all of the information written out to the
  38.  *   process accounting file whenever a process exits.
  39.  */
  40.  
  41. #define ACCT_COMM    16
  42.  
  43. struct acct
  44. {
  45.     char        ac_flag;        /* Flags */
  46.     char        ac_version;        /* Always set to ACCT_VERSION */
  47.     /* for binary compatibility back until 2.0 */
  48.     __u16        ac_uid16;        /* LSB of Real User ID */
  49.     __u16        ac_gid16;        /* LSB of Real Group ID */
  50.     __u16        ac_tty;            /* Control Terminal */
  51.     __u32        ac_btime;        /* Process Creation Time */
  52.     comp_t        ac_utime;        /* User Time */
  53.     comp_t        ac_stime;        /* System Time */
  54.     comp_t        ac_etime;        /* Elapsed Time */
  55.     comp_t        ac_mem;            /* Average Memory Usage */
  56.     comp_t        ac_io;            /* Chars Transferred */
  57.     comp_t        ac_rw;            /* Blocks Read or Written */
  58.     comp_t        ac_minflt;        /* Minor Pagefaults */
  59.     comp_t        ac_majflt;        /* Major Pagefaults */
  60.     comp_t        ac_swaps;        /* Number of Swaps */
  61. /* m68k had no padding here. */
  62. #if !defined(CONFIG_M68K) || !defined(__KERNEL__)
  63.     __u16        ac_ahz;            /* AHZ */
  64. #endif
  65.     __u32        ac_exitcode;        /* Exitcode */
  66.     char        ac_comm[ACCT_COMM + 1];    /* Command Name */
  67.     __u8        ac_etime_hi;        /* Elapsed Time MSB */
  68.     __u16        ac_etime_lo;        /* Elapsed Time LSB */
  69.     __u32        ac_uid;            /* Real User ID */
  70.     __u32        ac_gid;            /* Real Group ID */
  71. };
  72.  
  73. struct acct_v3
  74. {
  75.     char        ac_flag;        /* Flags */
  76.     char        ac_version;        /* Always set to ACCT_VERSION */
  77.     __u16        ac_tty;            /* Control Terminal */
  78.     __u32        ac_exitcode;        /* Exitcode */
  79.     __u32        ac_uid;            /* Real User ID */
  80.     __u32        ac_gid;            /* Real Group ID */
  81.     __u32        ac_pid;            /* Process ID */
  82.     __u32        ac_ppid;        /* Parent Process ID */
  83.     __u32        ac_btime;        /* Process Creation Time */
  84.     float        ac_etime;        /* Elapsed Time */
  85.     comp_t        ac_utime;        /* User Time */
  86.     comp_t        ac_stime;        /* System Time */
  87.     comp_t        ac_mem;            /* Average Memory Usage */
  88.     comp_t        ac_io;            /* Chars Transferred */
  89.     comp_t        ac_rw;            /* Blocks Read or Written */
  90.     comp_t        ac_minflt;        /* Minor Pagefaults */
  91.     comp_t        ac_majflt;        /* Major Pagefaults */
  92.     comp_t        ac_swaps;        /* Number of Swaps */
  93.     char        ac_comm[ACCT_COMM];    /* Command Name */
  94. };
  95.  
  96. /*
  97.  *  accounting flags
  98.  */
  99.                 /* bit set when the process ... */
  100. #define AFORK        0x01    /* ... executed fork, but did not exec */
  101. #define ASU        0x02    /* ... used super-user privileges */
  102. #define ACOMPAT        0x04    /* ... used compatibility mode (VAX only not used) */
  103. #define ACORE        0x08    /* ... dumped core */
  104. #define AXSIG        0x10    /* ... was killed by a signal */
  105.  
  106. #ifdef __BIG_ENDIAN
  107. #define ACCT_BYTEORDER    0x80    /* accounting file is big endian */
  108. #else
  109. #define ACCT_BYTEORDER    0x00    /* accounting file is little endian */
  110. #endif
  111.  
  112. #define ACCT_VERSION    2
  113. #define AHZ        (HZ)
  114.  
  115.  
  116. #endif    /* _LINUX_ACCT_H */
  117.